Skip to content

[codex] Make Briefprint explicit-use#20

Merged
dd3ok merged 2 commits into
mainfrom
codex/briefprint-explicit-invocation
Jul 6, 2026
Merged

[codex] Make Briefprint explicit-use#20
dd3ok merged 2 commits into
mainfrom
codex/briefprint-explicit-invocation

Conversation

@dd3ok

@dd3ok dd3ok commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Summary

  • make Briefprint explicit-use across skill metadata, OpenAI metadata, trigger fixtures, and model invocation worksheets
  • document host-specific explicit invocation syntax ($briefprint for Codex, /briefprint for Claude Code) and reject non-explicit positive trigger fixtures
  • document cache lifecycle best practices: repo-local .cache/briefprint, 7d document TTL guidance, no background cleanup daemon, and static skill bundle vs runtime cache separation
  • update validation receipts and tests for the new policy

Research basis

  • OpenAI Codex skills and Agent Skills spec define skills as static SKILL.md bundles with optional scripts/references/assets.
  • Claude Code documents disable-model-invocation: true for manual-only skills and /skill-name invocation.
  • Gemini CLI follows the Agent Skills model with discovery/activation, but does not define portable generated-state cache eviction.
  • Local cache/tooling conventions favor Git-ignored disposable cache directories plus explicit or opportunistic prune; CI cache platforms are the main automatic-eviction exception.

Validation

  • python -m pytest -q -> 168 passed, 2 skipped
  • python -m pytest -q -p no:cacheprovider -> 168 passed, 2 skipped
  • python scripts\validate_skill.py --run-evals -> OK, 24 test files, 9 eval cases, 10 trigger cases, 5 model benchmark cases
  • ruff check . -> All checks passed
  • git diff --check / staged diff check -> no whitespace errors; Git only reported CRLF conversion warnings

Review

  • Code-reviewer subagent re-review: No findings
  • Verifier subagent final re-check: PASS; no remaining caveat after VALIDATION.md receipt update

Remaining caveat

  • Real host/model invocation behavior is still a manual telemetry worksheet (observed_invocation: null), not something CI can prove across Codex, Claude Code, Gemini, or other hosts.

@dd3ok

dd3ok commented Jul 5, 2026

Copy link
Copy Markdown
Owner Author

Self-review summary:

  • Reviewed current diff after subagent feedback and fixed all findings:
    • documented host-specific explicit invocation syntax ($briefprint for Codex, /briefprint for Claude Code)
    • removed non-explicit positive trigger fixture behavior
    • replaced implicit trigger-tuning wording with invocation/boundary guidance
    • documented static skill bundle vs runtime cache under --cache-dir
  • Local validation:
    • python -m pytest -q -> 168 passed, 2 skipped
    • python -m pytest -q -p no:cacheprovider -> 168 passed, 2 skipped
    • python scripts\validate_skill.py --run-evals -> OK
    • ruff check . -> All checks passed
    • git diff --check -> no whitespace errors, only CRLF warnings
  • Subagent checks:
    • code-reviewer re-review: No findings
    • verifier final pass: PASS

Remaining caveat: actual model-side skill invocation still depends on host telemetry and is tracked as a manual benchmark worksheet with observed_invocation: null.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request transitions the Briefprint skill to an explicit-use model, disabling implicit model invocation and replacing broad natural-language triggers with explicit command invocations (such as $briefprint or /briefprint). It updates the documentation, metadata, evaluation cases, validation scripts, and tests to enforce this boundary and clarify the separation between the static skill bundle and the runtime cache. Feedback on the changes includes a recommendation to refine the regular expression used for detecting explicit invocations in scripts/validate_skill.py to prevent false positives on file paths or URLs.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread scripts/validate_skill.py Outdated
Comment on lines +522 to +523
def _has_explicit_briefprint_invocation(prompt: str) -> bool:
return re.search(r"(?<![\w-])(?:\$briefprint|/briefprint|briefprint)(?![\w-])", prompt.lower()) is not None

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The current regular expression for detecting explicit briefprint invocations is susceptible to false positives when the prompt contains repository file paths (e.g., skills/briefprint/SKILL.md) or URLs (e.g., https://github.com/dd3ok/briefprint). This is because / is not included in the character class of the lookbehind and lookahead assertions, allowing briefprint to match even when it is part of a path or URL.

Including / in the lookbehind and lookahead character classes ([\w/-]) ensures that briefprint is only matched as a standalone command/invocation and not as part of a file path or URL.

Suggested change
def _has_explicit_briefprint_invocation(prompt: str) -> bool:
return re.search(r"(?<![\w-])(?:\$briefprint|/briefprint|briefprint)(?![\w-])", prompt.lower()) is not None
def _has_explicit_briefprint_invocation(prompt: str) -> bool:
return re.search(r"(?<![\w/-])(?:\$briefprint|/briefprint|briefprint)(?![\w/-])", prompt.lower()) is not None

@dd3ok
dd3ok marked this pull request as ready for review July 6, 2026 00:07
@dd3ok
dd3ok merged commit 677057a into main Jul 6, 2026
4 checks passed
@dd3ok
dd3ok deleted the codex/briefprint-explicit-invocation branch July 6, 2026 00:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant